package ae.pcfc.etks.online.itworx.ehs.web.facade;

import java.util.List;

import ae.pcfc.etks.online.itworx.ehs.web.entity.DocumentType;
import ae.pcfc.etks.online.itworx.ehs.web.entity.OFCDocument;
import ae.pcfc.etks.online.itworx.ehs.web.enums.RequestStatus;
import ae.pcfc.etks.online.itworx.ehs.web.exception.DocumentTypeAlraedyExistException;
import ae.pcfc.etks.online.itworx.ehs.web.exception.DocumentTypeNotFoundException;
import ae.pcfc.etks.online.itworx.ehs.web.exception.InvalidDocumentTypeNameException;
import ae.pcfc.etks.online.itworx.ehs.web.exception.InvalidInputException;

public interface EHSFacade extends Facade{
	
	List<DocumentType> getAllDocumentType();
	void createNewDocumentType(DocumentType documentType) throws DocumentTypeAlraedyExistException, InvalidDocumentTypeNameException, InvalidInputException;
	void deleteDocumentType(Long id) throws DocumentTypeNotFoundException, InvalidInputException ;
	void updateDocumentType(DocumentType documentType) throws DocumentTypeNotFoundException, InvalidInputException, InvalidDocumentTypeNameException, DocumentTypeAlraedyExistException ;
	//DocumentType retrieveDocumentTypeByName(String name,Long id);
	OFCDocument findOFCDocumentById(long id) throws InvalidInputException;
	DocumentType getDocumentTypeById(Long id) throws DocumentTypeNotFoundException, InvalidInputException;
	List<DocumentType> getAllDocumentTypeByOFCStatus(String documentName, RequestStatus requestStatus);

}
